// pages/PartsCatalog/PartsCatalog.js
import Toast from '@vant/weapp/toast/toast';
Page({
  /**
   * 页面的初始数据
   */
  data: {
    conts: "",
    partcheack: true,
    isshow: true,
    isshowTow: false,
    orderNumber: '',
    user: "",
    manufactor: [],
    afterSale: "",
    partsList: [],
    searchPartsList: [],
    part: "",
    username:"",
  },

  // 下料图片
  afterRead1(event) {
    const {
      file
    } = event.detail;
    // 上传文件到云存储或调用云函数
    const timestamp = Date.now();
    wx.cloud.uploadFile({
      cloudPath: `${this.data.orderNumber}/${timestamp}`, // 上传至云端的路径
      filePath: file.url, // 小程序临时文件路径
      success: res => {
        // 调用云函数更新字段
        wx.cloud.callFunction({
          name: 'updatepath',
          data: {
            orderNumber: this.data.orderNumber,
            fieldName: 'blankingImg',
            fieldValue: res.fileID,
          },
          success: res => {
            console.log('更新成功', res);
            this.getpartList()
            // 处理更新成功后的逻辑
          },
          fail: err => {
            console.error('更新失败', err);
            // 处理更新失败后的逻辑
          }
        });
      },
      fail: console.error
    });
  },

  // 加工图片
  afterRead2(event) {
    const {
      file
    } = event.detail;
    // 上传文件到云存储或调用云函数
    const timestamp = Date.now();
    wx.cloud.uploadFile({
      cloudPath: `${this.data.orderNumber}/${timestamp}`, // 上传至云端的路径
      filePath: file.url, // 小程序临时文件路径
      success: res => {
        // 调用云函数更新字段
        wx.cloud.callFunction({
          name: 'updatepath',
          data: {
            orderNumber: this.data.orderNumber,
            fieldName: 'processingImage',
            fieldValue: res.fileID,
          },
          success: res => {
            console.log('更新成功', res);
            this.getpartList()
            // 处理更新成功后的逻辑
          },
          fail: err => {
            console.error('更新失败', err);
            // 处理更新失败后的逻辑
          }
        });
      },
      fail: console.error
    });
  },

  // 后处理图片
  afterRead3(event) {
    const {
      file
    } = event.detail;
    // 上传文件到云存储或调用云函数
    const timestamp = Date.now();
    wx.cloud.uploadFile({
      cloudPath: `${this.data.orderNumber}/${timestamp}`, // 上传至云端的路径
      filePath: file.url, // 小程序临时文件路径
      success: res => {
        // 调用云函数更新字段
        wx.cloud.callFunction({
          name: 'updatepath',
          data: {
            orderNumber: this.data.orderNumber,
            fieldName: 'handleImage',
            fieldValue: res.fileID,
          },
          success: res => {
            console.log('更新成功', res);
            this.getpartList()
            // 处理更新成功后的逻辑
          },
          fail: err => {
            console.error('更新失败', err);
            // 处理更新失败后的逻辑
          }
        });
      },
      fail: console.error
    });
  },

  // 质检图片
  afterRead4(event) {
    const {
      file
    } = event.detail;
    // 上传文件到云存储或调用云函数
    const timestamp = Date.now();
    wx.cloud.uploadFile({
      cloudPath: `${this.data.orderNumber}/${timestamp}`, // 上传至云端的路径
      filePath: file.url, // 小程序临时文件路径
      success: res => {
        // 调用云函数更新字段
        wx.cloud.callFunction({
          name: 'updatepath',
          data: {
            orderNumber: this.data.orderNumber,
            fieldName: 'qualityImg',
            fieldValue: res.fileID,
          },
          success: res => {
            console.log('更新成功', res);
            this.getpartList()
            // 处理更新成功后的逻辑
          },
          fail: err => {
            console.error('更新失败', err);
            // 处理更新失败后的逻辑
          }
        });
      },
      fail: console.error
    });
  },
 // 发货图片
 afterRead5(event) {
  const {
    file
  } = event.detail;
  // 上传文件到云存储或调用云函数
  const timestamp = Date.now();
  wx.cloud.uploadFile({
    cloudPath: `${this.data.orderNumber}/${timestamp}`, // 上传至云端的路径
    filePath: file.url, // 小程序临时文件路径
    success: res => {
      // 调用云函数更新字段
      wx.cloud.callFunction({
        name: 'updatepath',
        data: {
          orderNumber: this.data.orderNumber,
          fieldName: 'sendImage',
          fieldValue: res.fileID,
        },
        success: res => {
          console.log('更新成功', res);
          this.getpartList()
          // 处理更新成功后的逻辑
        },
        fail: err => {
          console.error('更新失败', err);
          // 处理更新失败后的逻辑
        }
      });
    },
    fail: console.error
  });
},
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad(options) {
    this.setData({
      orderNumber: options.orderNumber,
      afterSale: options.afterSale,
      user: options.user,
      manufactor: JSON.parse(options.manufactor),
      username:options.usernames
    })
    const userinfo = wx.getStorageSync('userInfo')
    if (userinfo.role == 'Users') {
      this.setData({
        partcheack: false
      })
    } else if (userinfo.role == 'Manufacturer') {
      this.setData({
        partcheack: false
      })
    } else if (userinfo.role == 'Boss') {
      this.setData({
        partcheack: true
      })
    }
  },
  // 转换时间
  formatDate(timestamp) {
    const dateObj = new Date(timestamp);
    const year = dateObj.getFullYear();
    const month = ('0' + (dateObj.getMonth() + 1)).slice(-2); // 月份从0开始，需要加1并补零
    const day = ('0' + dateObj.getDate()).slice(-2); // 获取日期并补零
    const formattedDate = `${year}-${month}-${day}`;
    return formattedDate;
  },

  // 确认搜索
  onSearch(event) {
    this.setData({
      part: event.detail // 获取输入框内容
    });
    const searchResult = this.data.partsList.filter(item =>
      item.partName.includes(this.data.part)
    );
    if (searchResult.length == 0) {

      this.setData({
        searchPartsList: []
      })
      Toast.fail('搜索为空');
    } else {
      this.setData({
        searchPartsList: searchResult, // 更新搜索结果
        isshow: false,
        isshowTow: true
      });
    }
  },

  // 去修改零件
  editpart(event) {
    const item = event.currentTarget.dataset.item;
    // console.log('点击了按钮，传递的id为：', item);
    wx.navigateTo({
      url: `/pages/EditPart/EditPart?item=${JSON.stringify(item)}`,
    })
  },


  // 取消搜索
  onCancel() {
    this.setData({
      part: "",
      isshow: true,
      isshowTow: false,
      searchPartsList: []
    })
  },
  // 获取已添加零件
  getpartList: function () {
    wx.cloud.callFunction({
      name: 'getPartPlus', // 云函数名称，需要根据实际名称修改
      data: {
        orderNumber: this.data.orderNumber, // 传递给云函数的参数
        manufacturerNam:this.data.username
      },
      success: res => {
        console.log(res)
        res.result.data.forEach(item => {
          const upTime = this.formatDate(item.updatedAt)
          item.updatedAt = upTime
        })
        this.setData({
          partsList: res.result.data, // 将云函数返回的数据设置到页面的 partsList 中
          conts: res.result.data.length
        });
      },
      fail: err => {
        console.error('获取零件列表失败', err);
        // 处理失败情况，例如显示错误信息给用户
      }
    });
  },


  // 添加零件信息
  gopartadd() {
    wx.navigateTo({
      url: `/pages/AddPart/AddPart?orderNumber=${this.data.orderNumber}&afterSale=${this.data.afterSale}&user=${this.data.user}&manufactor=${JSON.stringify(this.data.manufactor)}`,
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {
    this.getpartList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      isshow: true,
      isshowTow: false,
      searchPartsList: []
    });
  },
  // goHome
  goHome() {
    wx.switchTab({
      url: '/pages/OrderPage/OrderPage'
    });
  },
  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})